Conventional graphics processors are exemplified by systems and methods developed to read and filter texture map samples. To simplify the texture map filtering performed within a graphics processor, a texture is prefiltered and various resolutions of the prefiltered texture are stored as mip mapped texture maps. FIG. 1 is a conceptual diagram of prior art showing a mip mapped texture including a highest resolution texture map, Texture Map 101. A Texture Map 102, a Texture Map 103, and a Texture Map 104 are successively lower resolution texture maps, each storing prefiltered texture samples, e.g., mip maps as mentioned in Pyramidal Parametrics, Lance Williams, Computer Graphics (SIGGRAPH '83 Proceedings), vol. 17, no. 3, July 1983, pp. 1-11.
When a texture map is applied to a pixel, a conventional graphics processor typically performs trilinear interpolation, first selecting two texture maps to read texture samples from, such as Texture Map 101 and Texture Map 102. The conventional graphics processor reads four texels (texture map samples), Texels 110 from Texture Map 101 and four texels, Texels 115 from Texture Map 102. A bilinear interpolation is performed using Texels 110 and another bilinear interpolation is performed using Texels 115. The result of each bilinear interpolation is then interpolated to produce a final filtered texture sample which is used to determine a color for the pixel.
Trilinear interpolation results in a high-quality image; however eight texture samples are read and processed to produce each filtered texture sample. Bilinear interpolation results in a lower quality image, but only requires reading four samples from one texture map and performing a bilinear interpolation to produce each filtered texture sample. Point sampling, i.e. reading a single texture sample from a texture map as each filtered texture sample, results in an even lower quality image. In general, producing a higher-quality image requires reading more texture samples and performing more complex operations to produce each filtered texture sample. Therefore texture sample filtering performance decreases as image quality improves, due to limited bandwidth available for reading texture samples stored in memory and limited computational resources within a graphics processor.
Accordingly, there is a need to balance performance of texture sample filtering with image quality to minimize image quality degradation for a desired level of texture sample filtering performance.